package cn.tqfeiyang.springplus.warehouse.service;

import cn.tqfeiyang.springplus.warehouse.entity.CompanyEntity;
import cn.tqfeiyang.springplus.warehouse.request.CompanyDTO;
import cn.tqfeiyang.springplus.warehouse.response.CompanyVO;
import cn.tqfeiyang.springplus.warehouse.request.CompanySTO;
import com.baomidou.mybatisplus.extension.service.IService;
import cn.tqfeiyang.springplus.framework.pagination.PageData;

/**
 * 公司服务接口
 *
 * @author tqfeiyang
 * @since 2024-08-01
 */
public interface CompanyService extends IService<CompanyEntity> {

    /**
     * 分页查询公司
     *
     * @param companySTO 查询数据
     * @return 公司列表
     */
    PageData<CompanyVO> selectCompanyPage(CompanySTO companySTO);

    /**
     * 查询公司
     *
     * @param companyId 公司id
     * @return 公司信息
     */
    CompanyVO selectCompanyInfo(Long companyId);

    /**
     * 新建公司
     *
     * @param companyDTO 请求数据
     * @return 公司id
     */
    Long createCompany(CompanyDTO companyDTO);

    /**
     * 修改公司
     *
     * @param companyId 公司id
     * @param companyDTO 请求数据
     */
    void updateCompany(Long companyId, CompanyDTO companyDTO);

    /**
     * 删除公司
     *
     * @param companyId 公司id
     */
    void deleteCompany(Long companyId);
}
